#ifndef ITEM_HH
#define ITEM_HH

#include <string>
#include <cstdlib>
#include <ctime>
#include "ICharacter.hh"

struct Item {
    std::string name;
    std::string description;
    int healthBoost;
    int attackBoost;
    int defenseBoost;

    Item(const std::string& name, const std::string& description, int healthBoost, int attackBoost, int defenseBoost);
    ~Item();
    Item(const Item& other); // Copy constructor
    Item& operator=(const Item& other); // Copy assignment operator

    std::string getName() const;
    std::string getDescription() const;
    void applyEffect(ICharacter& character) const;

    static Item* generateRandomItem();
};

#endif // ITEM_HH